package com.own.component.mybatis.hook;

import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * CustomMybatisHook
 *
 * @author chenxueli
 * @date 2024-01-12 11:49:00
 */
@Component
public interface CustomMybatisHook {

    /**
     * 执行方法
     *
     * @param methodList  方法列表
     * @param mapperClass mapper类
     * @param tableInfo   表信息
     */
    void run(List<AbstractMethod> methodList, Class<?> mapperClass, TableInfo tableInfo);

    /**
     * 执行的顺序，数字越小越先执行
     *
     * @return 顺序
     */
    default int order() {
        return 0;
    }

}
